﻿/*
 * Created by SharpDevelop.
 * User: Zoila
 * Date: 18/10/2011
 * Time: 12:07 a.m.
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

using PetSoft.GUI.RRHH;
using Business_Entity;
using Business_Logic;
//using Business_Entity.Seguridad;

namespace PetSoft.GUI.Ventas
{
	/// <summary>
	/// Description of GUICierreAperturaCaja.
	/// </summary>
	public partial class GUIMantenimientoCaja : Form
	{
		private BETienda tienda;
		private BEEmpleado cajero;
		private BECaja_Estado estado;
		
		private List<BECaja_Estado> estadoLIST= new List<BECaja_Estado>();
		private List<BERegistroCaja> cajaRegLIST= new List<BERegistroCaja>();
		
		private BLCaja blCaja= new BLCaja();
		
		public GUIMantenimientoCaja()
		{
			//
			// The InitializeComponent() call is required for Windows Forms designer support.
			//
			InitializeComponent();
			
			//
			// TODO: Add constructor code after the InitializeComponent() call.
			//
			
			
		}
		
	
		
		public void GUIMantenimientoCajaLoad(object sender, EventArgs e)
		{
			try{
				//Utils.MessageInformation(tienda.Id.ToString());
				this.resultadosGB.Enabled=false;
				//Validar TB;
				cajeroTB.MaxLength=40;
				this.cajeroTB.KeyPress+=new KeyPressEventHandler(Utils.SoloLetrasTB);
				this.cajaDGV.RowHeadersVisible=false;
				
				//estadoCB.SelectedIndexChanged+=new EventHandler( Utils.CambiaDefaultCB);
				
				//cajaDGV.RowStateChanged+= new DataGridViewRowStateChangedEventHandler(cajaDGV_RowStateChanged);
				//tienda= SacaTiendabyUser();//DEBE ESTAR EN SEGURIDAD
				SacaTiendaPrueba();
				this.tiendaTB.Text=tienda.ToString();
				LlenaEstadosBusqueda();
			}
			catch (Exception ex){
				Utils.MessageAviso(ex.Message);
			}
			
		}
			
		
		public void SacaTiendaPrueba(){
		//	BETienda tiendaTemp= new BETienda(0,"Principal","");
			this.tienda=Business_Logic.BLInfo.TiendaActual;
		}
		
		public void LlenaEstadosBusqueda(){
			
			estadoLIST= blCaja.getCaja_Estados();
			
			//this.estadoCB.Items[-1]="Seleccionar";
			
			this.estadoCB.DataSource=estadoLIST;
			this.estadoCB.ValueMember="idEstado";
			this.estadoCB.DisplayMember="descripcion";
			
			//this.estadoCB.Items[-1].Equals="Seleccionar" 
			/*foreach (BECaja_Estado estado in estadoLIST){
			//	string est=estado.idCaja_Estado.ToString();
				string desc= estado.Descripcion.ToString();
				this.estadoCB.Items.Add(desc);
				
			}*/
			
		}
		
		
		public void BuscarBTNClick(object sender, System.EventArgs e)
		{
			this.cajaDGV.Rows.Clear();
			if (RealizaBusqueda()){
				LlenarGrilla();
				this.verBTN.Visible=false;editarBTN.Visible=false;aperturaBTN.Visible=false;
				this.resultadosGB.Enabled=true;
			}
			else {
				//Utils.MessageInformation("La busuqeda no dio resultados");// MessageBox.Show("Su busqueda no dio resultados", "No Caja", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
				this.resultadosGB.Enabled=false;
			}
		}
		
		public bool RealizaBusqueda(){
			BECaja_Estado estado;
			//int idcajero=0;
			
			/*if (estadoCB.SelectedIndex==0) // Para saber si eligio algun estado
				estado=new BECaja_Estado("","TODAS");
			else*/
			estado=estadoLIST[estadoCB.SelectedIndex];
			//Utils.MessageInformation(tienda.Id.ToString());
			  
			if (cajero != null){	
				//idcajero=cajero.IdEmpleado;		
				cajaRegLIST=blCaja.getCajasByQry(tienda,cajero,estado);// se realiza 
				
			}
			else{
				//cajaRegLIST=null;		
				cajaRegLIST=blCaja.getCajaEmpleadoByQry(tienda,this.cajeroTB.Text,estado);
			
			}
			
			
			if (cajaRegLIST.Count>0){ 
				return true;
			}
			return false;// si no encuentra nada
		}
		
		public void LlenarGrilla(){
			int i=0;
			foreach (BERegistroCaja regCaja in cajaRegLIST){
				object[] row0={regCaja.Caja.Nombre,regCaja.Empleado.Nombre,regCaja.Caja.Estado.Descripcion,regCaja.Caja.Tienda.Nombre,i++};
        		this.cajaDGV.Rows.Add(row0);
			}
			resultadosLB.Text="Cantidad de registros encontrados:" + (i);
		}
		
		
		public void BuscarCajeroBTNClick(object sender, EventArgs e)
		{
			//GUIBuscarEmpleado buscaCajero= new GUIBuscarEmpleado ();//PASAR COMO PARAMETRO QUE SEA CAJERO
			//cajero=buscaCajero.ShowDialog();// Al momento de Cerrar manda a la GUI el EMPLEADO;
			//buscaCajero.ShowDialog();
			//cajero=new BEEmpleado (5); cajero.Nombre="Cajero"; cajero.ApPaterno=" 5";
			try{
	            RRHH.GUIBuscarEmpleado v = new RRHH.GUIBuscarEmpleado();
	            
	            v.ShowDialog(this);
	            	            
	            BEEmpleado empleado = v.Empleado;
	            
	            if (empleado != null){
	            		/*if  (BLCaja.esCajero(empleados[0],BLInfo.TiendaActual.Id)){
	            		     	Utils.MessageInformation( empleados[0].Nombre +" " + empleados[0].ApPaterno +" ya tiene una caja aperturada");
	            		     	v.ShowDialog();
	            		 }
	            		 else{*/
	            			this.cajero= empleado;
			            	this.cajeroTB.Text = this.cajero.Nombre + " " + this.cajero.ApPaterno;
			            //	Utils.MessageInformation(empleado.Nombre);
	            		// }
	            		//this.cajero=empleados[0];
	            	
	            }
	            
        	}catch(Exception ex){
        		MessageBox.Show("Error\n"+ex);
        	}
			/*
			if (cajero!= null){
				this.cajeroTB.Text=cajero.Nombre+" "+cajero.ApPaterno;
				//BUSCAR CAJERO ACTUALIZA EL ATRIBUTO CAJERO
			}*/
			//this.cajeroTB.Enabled=false;
		}
		
		
		
		
		void EstadoCBSelectedIndexChanged(object sender, EventArgs e)
		{
//			if ((estadoCB.SelectedIndex==0)||(estadoCB.SelectedIndex==1)){
//				this.cajeroTB.Enabled=false;
//				this.buscarCajeroBTN.Enabled=false;
//			}
//			else{
//				this.cajeroTB.Enabled=true;
//				this.buscarCajeroBTN.Enabled=true;
//			}
		}
		
		void VerBTNClick(object sender, EventArgs e)
		{
			GUICierreCaja detCaja= new GUICierreCaja(cajaRegLIST[cajaDGV.CurrentRow.Index],false);
			detCaja.Show();
			this.cajaDGV.Rows.Clear();
			if (RealizaBusqueda()){
				LlenarGrilla();
				this.verBTN.Visible=false;editarBTN.Visible=false;aperturaBTN.Visible=false;
				this.resultadosGB.Enabled=true;
			}
		}
		
		void EditarBTNClick(object sender, EventArgs e)
		{
			GUICierreCaja detCaja= new GUICierreCaja(cajaRegLIST[cajaDGV.CurrentRow.Index],true);
			detCaja.ShowDialog();
			this.cajaDGV.Rows.Clear();
			if (RealizaBusqueda()){
				LlenarGrilla();
				this.verBTN.Visible=false;editarBTN.Visible=false;aperturaBTN.Visible=false;
				this.resultadosGB.Enabled=true;
			}
		}
		
		void AperturaBTNClick(object sender, EventArgs e)
		{
			GUIAperturaCaja detCaja=new GUIAperturaCaja (cajaRegLIST[cajaDGV.CurrentRow.Index].Caja);
			detCaja.ShowDialog();
			
			this.cajaDGV.Rows.Clear();
			if (RealizaBusqueda()){
				LlenarGrilla();
				this.verBTN.Visible=false;editarBTN.Visible=false;aperturaBTN.Visible=false;
				this.resultadosGB.Enabled=true;
			}
			
		}
		void LimpiarBTNClick(object sender, EventArgs e)
		{
			this.cajeroTB.Clear();
			this.estadoCB.Enabled=true;
			this.cajero=null;
			
			this.estadoCB.DataSource=estadoLIST;
			this.estadoCB.ValueMember="idEstado";
			this.estadoCB.DisplayMember="descripcion";
			
			this.cajaDGV.Rows.Clear();
			
			this.resultadosGB.Enabled=false;
			
		}
		
		
		
		void CajaDGVCellClick(object sender, DataGridViewCellEventArgs e)
		{
			if(cajaDGV.CurrentRow!=null){
			//	MessageBox.Show(cajaDGV.CurrentRow.Cells[2].Value.ToString()+" = "+this.estadoLIST[1].Descripcion + " , "+this.estadoLIST[2].Descripcion+" ," + this.estadoLIST[3].Descripcion);
				/*if (cajaDGV.CurrentRow.Cells[2].Value.ToString().CompareTo(this.estadoLIST[0].Descripcion)==0 ){
					MessageBox.Show("HOLA");
				}*/
				if (cajaDGV.CurrentRow.Cells[2].Value.ToString().CompareTo(this.estadoLIST[2].Descripcion.ToUpper())==0 ){
			//		MessageBox.Show("ACAAAAAAAAA");
					editarBTN.Text="Cerrar";
					aperturaBTN.Visible=false;
					editarBTN.Visible=true;
					editarBTN.Enabled=true;
					verBTN.Visible=true;
		
				}
				else{
					//if (cajaDGV.CurrentRow.Cells[2].Value.ToString().Equals(this.estadoLIST[1].Descripcion.ToUpper()) || cajaDGV.CurrentRow.Cells[3].Value.ToString().Equals(this.estadoLIST[3].Descripcion.ToUpper())) {
				//	MessageBox.Show(cajaDGV.CurrentRow.Cells[2].Value.ToString()+" = "+this.estadoLIST[1].Descripcion + " , "+this.estadoLIST[3].Descripcion);
					editarBTN.Visible=false;
					aperturaBTN.Enabled=true;
					aperturaBTN.Visible=true;
					verBTN.Visible=false;
					//}
				}
				
			}
		}
	}
}
